package com.weasing.res.service.base;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.weasing.res.utils.PageBean;

public interface IBaseService<T> {
	/**
	 * 增加
	 * 
	 * @author 黄龙
	 */
	public void save(T entity);

	/**
	 * 增加或者更新
	 * 
	 * @author 黄龙
	 */
	public void saveOrUpdate(T entity);

	/**
	 * 删除
	 * 
	 * @author 黄龙
	 */
	public void delete(T entity);

	/**
	 * 更新
	 * 
	 * @author 黄龙
	 */
	public void update(T entity);

	/**
	 * 通过ID找对象
	 * 
	 * @author 黄龙
	 */
	public T findById(Serializable id);

	/**
	 * 查所有对象
	 * 
	 * @param 黄龙
	 */
	public List<T> findAll();

	/**
	 * 通过当前页和显示总数 查询分页信息
	 * 
	 * @author 黄龙
	 * @param map
	 */
	public void pageQuery(PageBean pageBean);

	/**
	 * 模糊查询
	 * 
	 * @param pageBean
	 * @param map
	 */
	public void pageQuery(PageBean pageBean, Map<String, Object> map);

	/**
	 * 获得表数据的count
	 * 
	 * @author 黄龙
	 */
	public Integer findCount();

	/**
	 * 通过父id查询所有字id的对象
	 * 
	 * @author 黄龙
	 */
	public List<T> findAllByParentId(Integer parentId);;

	/**
	 * 通过map找到表中有的字段个数
	 * 
	 * 
	 */
	public Integer findCountByField(Map<String, Object> map);
}
